#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>
#define ARGS_CHECK(argc, num)               \
    {                                       \
        if (argc != num)                    \
        {                                   \
            fprintf(stderr, args error !n); \
            return -1;                      \
        }                                   \
    }
#define ERROR_CHECK(ret, num, msg) \
    {                              \
        if (ret == num)            \
        {                          \
            perror(msg);           \
            exit(1);               \
        }                          \
    }
int a = 100;
sem_t sem;
void *fun(void *arg)
{
    while (1)
    {
         
        sleep(1);
        if (sem_post(&sem) == -1)
        {
            perror("sem_post");
        }
         printf("%d\n", a);
}
    }  

int main(int argc, char *argv[])
{

    sem_init(&sem, 0, 5);
    pthread_t thread;
    pthread_create(&thread, NULL, fun, NULL);
    while (1)
    {
        if (sem_wait(&sem) == 0)
        {
            a++;
        }
    }

    return 0;
}
